{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 一、百度AI平台自然语言处理——通用翻译\n",
    "* 技术文档链接：https://fanyi-api.baidu.com/api/trans/product/apidoc#joinFile"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 1.导入模块"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import http.client\n",
    "import hashlib\n",
    "import urllib\n",
    "import random\n",
    "import json"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 2.封装代码"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "def wywfy(q):\n",
    "    appid = '20200708000515588'  # 填写你的appid\n",
    "    secretKey = 'Z28hVwCFQlU4JuNW5Ndx'  # 填写你的密钥\n",
    "\n",
    "    httpClient = None\n",
    "    myurl = '/api/trans/vip/translate'\n",
    "\n",
    "    fromLang = 'wyw'   #原文语种\n",
    "    toLang = 'zh'   #译文语种\n",
    "    salt = random.randint(32768, 65536)\n",
    "    q= q\n",
    "    sign = appid + q + str(salt) + secretKey\n",
    "    sign = hashlib.md5(sign.encode()).hexdigest()\n",
    "    myurl = myurl + '?appid=' + appid + '&q=' + urllib.parse.quote(q) + '&from=' + fromLang + '&to=' + toLang + '&salt=' + str(\n",
    "    salt) + '&sign=' + sign\n",
    "\n",
    "    try:\n",
    "        httpClient = http.client.HTTPConnection('api.fanyi.baidu.com')\n",
    "        httpClient.request('GET', myurl)\n",
    "\n",
    "        # response是HTTPResponse对象\n",
    "        response = httpClient.getresponse()\n",
    "        result_all = response.read().decode(\"utf-8\")\n",
    "        result = json.loads(result_all)\n",
    "\n",
    "        print (result)\n",
    "\n",
    "    except Exception as e:\n",
    "        print (e)\n",
    "    finally:\n",
    "        if httpClient:\n",
    "            httpClient.close()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 3.调用代码，进行翻译"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'from': 'wyw', 'to': 'zh', 'trans_result': [{'src': '岳飞，字鹏举，相州汤阴人。世力农。父和，能节食以济饥者。有耕侵其地，割而与之；贳其财者不责偿。飞生时，有大禽若鹄，飞鸣室上，因以为名。未弥月，河决内黄，水暴至，母姚抱飞坐瓮中，冲涛及岸得免，人异之。少负气节，沈厚寡言，家贫力学，尤好《左氏春秋》、孙武《兵法》。家贫 ,拾薪为烛,诵习达旦,不寐。生有神力，未冠，挽弓三百斤，弩八石，学射于周同，尽其术，能左右射。同死，朔望设祭于其冢。父义之，曰：“汝为时用，其徇国死义乎！”宣和四年，真定宣抚刘韐募敢战士，飞应募。相有剧贼陶俊、贾进和，飞请百骑灭之。遣卒伪为商入贼境，贼掠以充部伍。飞遣百人伏山下，自领数十骑逼贼垒。贼出战，飞阳北，贼来追之，伏兵起，先所遣卒擒俊及进和以归。康王至相，飞因刘浩见，命招贼吉倩，倩以众三百八十人降。补承信郎。以铁骑三百往李固渡尝敌，败之。从浩解东京围，与敌相持于滑南，领百骑习兵河上。敌猝至，飞麾其徒曰：“敌虽众，未知吾虚实，当及其未定击之。”乃独驰迎敌。有枭将舞刀而前，飞斩之，敌大败。迁秉义郎，隶留守宗泽。战开德、曹州皆有功，泽大奇之，曰：“尔勇智才艺，古良将不能过，然好野战，非万全计。”因授以阵图。飞曰：“阵而后战，兵法之常，运用之妙，存乎一心。”泽是其言。', 'dst': '岳飞，字鹏举，相州汤阴人。社会力量发展。父亲和，能节制饮食来帮助饥饿的人。有耕地侵占他们的土地，割让土地给他；宽恕他的财产的不要求偿还。飞生时，有大动物像天鹅，飞鸣室上，因此得名。未满一个月，黄河在内黄，洪水突然到来，母亲姚抱着飞坐瓮中，奔腾的波涛和岸逃脱，人有不同的。年轻时有气节，沉厚少说话，家中贫困努力学习，尤其喜欢《左氏春秋》、《孙子兵法》。家里贫穷，拾柴为蜡烛，学习到天亮，睡不着。生有神奇的力量，未成年，拉三百斤的弓，弩八石，学射于周同，全部的方法，能左右开弓。同死，朔日、望日祭祀在他的坟墓。父亲义的，说：“你是用时，他们为国死义吗！“宣和四年，真定宣抚刘洽招募敢战士，飞应募。相有大盗陶俊、贾进和，飞请百骑灭的。派士兵伪装成商人进入敌境，盗贼抢劫以充实队伍。岳飞派遣数百人埋伏在山下，从领数十骑兵进逼叛贼营垒。贼军出战，飞阳北，敌人追来的，伏兵四起，先是派遣士兵抓住俊及进和带回家。康王到达相，飞通过刘浩会见，命令招贼吉倩，请用普通三百八十人投降。补承信郎。用铁三百名骑兵去李固渡过曾经敌人，失败的。从浩解释东京包围，与敌人相持在滑南，率领一百骑兵战争河上。敌人突然出现，飞行指挥他的门徒说：“敌人虽然众多，不知道我们的虚实，当他们还未确定攻击的。”于是飞马迎战。有猫头鹰将舞刀上前，飞杀了他，敌人大败。升任秉义郎，隶属于留守宗泽。战开德、曹州都有功效，泽大惊奇的，说：“你是勇敢智慧才能，古良率不能超过，但好野战，不是万全计策。”于是授以阵图。飞说：“阵然后作战，战争法的一般，运用之妙，存在一个心。“泽是他的话。'}]}\n"
     ]
    }
   ],
   "source": [
    "岳飞传 = wywfy(q='岳飞，字鹏举，相州汤阴人。世力农。父和，能节食以济饥者。有耕侵其地，割而与之；贳其财者不责偿。飞生时，有大禽若鹄，飞鸣室上，因以为名。未弥月，河决内黄，水暴至，母姚抱飞坐瓮中，冲涛及岸得免，人异之。\\\n",
    "少负气节，沈厚寡言，家贫力学，尤好《左氏春秋》、孙武《兵法》。家贫 ,拾薪为烛,诵习达旦,不寐。生有神力，未冠，挽弓三百斤，弩八石，学射于周同，尽其术，能左右射。同死，朔望设祭于其冢。父义之，曰：“汝为时用，其徇国死义乎！”\\\n",
    "宣和四年，真定宣抚刘韐募敢战士，飞应募。相有剧贼陶俊、贾进和，飞请百骑灭之。遣卒伪为商入贼境，贼掠以充部伍。飞遣百人伏山下，自领数十骑逼贼垒。贼出战，飞阳北，贼来追之，伏兵起，先所遣卒擒俊及进和以归。\\\n",
    "康王至相，飞因刘浩见，命招贼吉倩，倩以众三百八十人降。补承信郎。以铁骑三百往李固渡尝敌，败之。从浩解东京围，与敌相持于滑南，领百骑习兵河上。敌猝至，飞麾其徒曰：“敌虽众，未知吾虚实，当及其未定击之。”乃独驰迎敌。有枭将舞刀而前，飞斩之，敌大败。迁秉义郎，隶留守宗泽。战开德、曹州皆有功，泽大奇之，曰：“尔勇智才艺，古良将不能过，然好野战，非万全计。”因授以阵图。飞曰：“阵而后战，兵法之常，运用之妙，存乎一心。”泽是其言。')\n",
    "岳飞传"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 3.调用代码，进行翻译"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'from': 'wyw', 'to': 'zh', 'trans_result': [{'src': '“君不见，黄河之水天上来，奔流到海不复回。君不见，高堂明镜悲白发，朝如青丝暮成雪。人生得意须尽欢，莫使金樽空对月。天生我材必有用，千金散尽还复来。烹羊宰牛且为乐，会须一饮三百杯。岑夫子，丹丘生，将进酒，杯莫停。”', 'dst': '“君不见，汹涌奔腾的黄河之水，有如从天上倾泻而来，它滚滚东去，奔向东海，永远不会回还。难道你们没有看到当初燕国君臣互相尊重和信任的情景吗，在高堂上面对明镜，深沉悲叹那一头白发，早晨的满头青丝，怎么才到傍晚就变成雪白一片。人生在世每逢得意之时，理应尽情欢乐，别让金杯玉露，空对天上明月。既然老天造就了我这栋梁之才，就一定会有用武之地，即使散尽了千两黄金，也会重新得到。烹羊宰牛，且图眼前欢乐，应该痛痛快快一口气喝它三百杯。岑勋先生呵，丹邱先生呵，快快进酒吧，不要停下来。”'}]}\n"
     ]
    }
   ],
   "source": [
    "将进酒=wywfy(q='“君不见，黄河之水天上来，奔流到海不复回。君不见，高堂明镜悲白发，朝如青丝暮成雪。人生得意须尽欢，莫使金樽空对月。天生我材必有用，千金散尽还复来。烹羊宰牛且为乐，会须一饮三百杯。岑夫子，丹丘生，将进酒，杯莫停。”')\n",
    "将进酒"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 二、百度AI平台自然语言处理——文本纠错\n",
    "* 技术文档链接：https://ai.baidu.com/ai-doc/NLP/Ik6z52gp8"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 1.调用模块"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "# encoding:utf-8\n",
    "import requests \n",
    "import json \n",
    "import urllib"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 2.申请Access Token"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'refresh_token': '25.1871db87daa5c20989339037df6889ac.315360000.1910958065.282335-21572472', 'expires_in': 2592000, 'session_key': '9mzdXqaY1O1ceBbVBVaW03HIOlsUQzGnqDkfdDqlgwkO8eglMP8nvyw63U6uqdA3iGk/NA9Sbc7C3EwDlY35XdK4nyru+w==', 'access_token': '24.ecdac6a08f2337f8ca4bb3e926e9957d.2592000.1598190065.282335-21572472', 'scope': 'public nlp_simnet nlp_wordemb nlp_comtag nlp_dnnlm_cn brain_nlp_lexer brain_all_scope brain_nlp_comment_tag brain_nlp_dnnlm_cn brain_nlp_word_emb_vec brain_nlp_word_emb_sim brain_nlp_sentiment_classify brain_nlp_simnet brain_nlp_depparser brain_nlp_wordembedding brain_nlp_dnnlm_cn_legacy brain_nlp_simnet_legacy brain_nlp_comment_tag_legacy brain_nlp_lexer_custom brain_nlp_keyword brain_nlp_topic brain_nlp_ecnet brain_nlp_emotion brain_nlp_comment_tag_custom brain_nlp_news_summary brain_nlp_sentiment_classify_custom brain_nlp_address wise_adapt lebo_resource_base lightservice_public hetu_basic lightcms_map_poi kaidian_kaidian ApsMisTest_Test权限 vis-classify_flower lpq_开放 cop_helloScope ApsMis_fangdi_permission smartapp_snsapi_base iop_autocar oauth_tp_app smartapp_smart_game_openapi oauth_sessionkey smartapp_swanid_verify smartapp_opensource_openapi smartapp_opensource_recapi fake_face_detect_开放Scope vis-ocr_虚拟人物助理 idl-video_虚拟人物助理', 'session_secret': '30fe00f527b870af86dc79576d61efad'}\n"
     ]
    }
   ],
   "source": [
    "# client_id 为官网获取的AK， client_secret 为官网获取的SK\n",
    "host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=zhvZUpE4ER9pluXbIccG9Efh&client_secret=EF1FDb7UGWDHg9xQCzRMDAnGgTHkQTx7'\n",
    "response = requests.get(host)\n",
    "if response:\n",
    "    print(response.json())"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 3.封装模块"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [],
   "source": [
    "\n",
    "def ecnet(text):\n",
    "    \"\"\"\n",
    "   文本纠错（识别输入文本中有错误的片段，提示错误并给出正确的文本结果）\n",
    "    参数：\n",
    "    text:str 本文(待纠错文本，输入限制511字节)\n",
    "    \"\"\"\n",
    "    raw = {\"text\":\"内容\"}\n",
    "    raw['text'] = text\n",
    "    data = json.dumps(raw).encode('utf-8')\n",
    "    AT = \"24.21a96442d217e030174771cf2d0c2117.2592000.1598175731.282335-21572472\"\n",
    "    host = \"https://aip.baidubce.com/rpc/2.0/nlp/v1/ecnet?charset=UTF-8&access_token=\"+AT\n",
    "    request = urllib.request.Request(url=host,data=data)\n",
    "    request.add_header('Content-Type', 'application/json')\n",
    "    response = urllib.request.urlopen(request)\n",
    "    content = response.read().decode('utf-8')\n",
    "    rdata = json.loads(content)\n",
    "    return rdata\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'log_id': 419850102600102744,\n",
       " 'item': {'vec_fragment': [],\n",
       "  'score': 0,\n",
       "  'correct_query': '君不见，汹涌奔腾的黄河之水，有如从天上倾泻而来，它滚滚东去，奔向东海，永远不会回还。难道你们没有看到当初燕国君臣互相尊重和信任的情景吗，在高堂上面对明镜，深沉悲叹那一头白发，早晨的满头青丝，怎么才到傍晚就变成雪白一片。人生在世每逢得意之时，理应尽情欢乐，别让金杯玉露，空对天上明月。既然老天造就了我这栋梁之才，就一定会有用武之地，即使散尽了千两黄金，也会重新得到。烹羊宰牛，且图眼前欢乐，应该痛痛快快一口气喝它三百杯。岑勋先生呵，丹邱先生呵，快快进酒吧，不要停下来。'},\n",
       " 'text': '君不见，汹涌奔腾的黄河之水，有如从天上倾泻而来，它滚滚东去，奔向东海，永远不会回还。难道你们没有看到当初燕国君臣互相尊重和信任的情景吗，在高堂上面对明镜，深沉悲叹那一头白发，早晨的满头青丝，怎么才到傍晚就变成雪白一片。人生在世每逢得意之时，理应尽情欢乐，别让金杯玉露，空对天上明月。既然老天造就了我这栋梁之才，就一定会有用武之地，即使散尽了千两黄金，也会重新得到。烹羊宰牛，且图眼前欢乐，应该痛痛快快一口气喝它三百杯。岑勋先生呵，丹邱先生呵，快快进酒吧，不要停下来。'}"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ecnet(text='君不见，汹涌奔腾的黄河之水，有如从天上倾泻而来，它滚滚东去，奔向东海，永远不会回还。难道你们没有看到当初燕国君臣互相尊重和信任的情景吗，在高堂上面对明镜，深沉悲叹那一头白发，早晨的满头青丝，怎么才到傍晚就变成雪白一片。人生在世每逢得意之时，理应尽情欢乐，别让金杯玉露，空对天上明月。既然老天造就了我这栋梁之才，就一定会有用武之地，即使散尽了千两黄金，也会重新得到。烹羊宰牛，且图眼前欢乐，应该痛痛快快一口气喝它三百杯。岑勋先生呵，丹邱先生呵，快快进酒吧，不要停下来。')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'log_id': 6298866745709850520,\n",
       " 'item': {'vec_fragment': [],\n",
       "  'score': 0,\n",
       "  'correct_query': '岳飞，字鹏举，相州汤阴人。社会力量发展。父亲和，能节制饮食来帮助饥饿的人。有耕地侵占他们的土地，割让土地给他；宽恕他的财产的不要求偿还。飞生时，有大动物像天鹅，飞鸣室上，因此得名。未满一个月，黄河在内黄，洪水突然到来，母亲姚抱着飞坐瓮中，奔腾的波涛和岸逃脱，人有不同的。年轻时有气节，沉厚少说话，家中贫困努力学习，尤其喜欢《左氏春秋》、《孙子兵法》。家里贫穷，拾柴为蜡烛，学习到天亮，睡不着。生有神奇的力量，未成年，拉三百斤的弓，弩八石，学射于周同，全部的方法，能左右开弓。'},\n",
       " 'text': '岳飞，字鹏举，相州汤阴人。社会力量发展。父亲和，能节制饮食来帮助饥饿的人。有耕地侵占他们的土地，割让土地给他；宽恕他的财产的不要求偿还。飞生时，有大动物像天鹅，飞鸣室上，因此得名。未满一个月，黄河在内黄，洪水突然到来，母亲姚抱着飞坐瓮中，奔腾的波涛和岸逃脱，人有不同的。年轻时有气节，沉厚少说话，家中贫困努力学习，尤其喜欢《左氏春秋》、《孙子兵法》。家里贫穷，拾柴为蜡烛，学习到天亮，睡不着。生有神奇的力量，未成年，拉三百斤的弓，弩八石，学射于周同，全部的方法，能左右开弓。'}"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "ecnet(text='岳飞，字鹏举，相州汤阴人。社会力量发展。父亲和，能节制饮食来帮助饥饿的人。有耕地侵占他们的土地，割让土地给他；宽恕他的财产的不要求偿还。飞生时，有大动物像天鹅，飞鸣室上，因此得名。未满一个月，黄河在内黄，洪水突然到来，母亲姚抱着飞坐瓮中，奔腾的波涛和岸逃脱，人有不同的。年轻时有气节，沉厚少说话，家中贫困努力学习，尤其喜欢《左氏春秋》、《孙子兵法》。家里贫穷，拾柴为蜡烛，学习到天亮，睡不着。生有神奇的力量，未成年，拉三百斤的弓，弩八石，学射于周同，全部的方法，能左右开弓。')"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
